import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.filechooser.*;
import java.io.*;
public class WindowReader extends JFrame implements ActionListener {
    JFileChooser fileDialog ;
    JMenuBar menubar;
    JMenu menu;
    JMenuItem itemSave,itemOpen;
    JTextArea text;
    BufferedReader in;  
    FileReader fileReader;
    BufferedWriter out; 
    FileWriter fileWriter;
    WindowReader() {
       init();
       setSize(300,400);
       setVisible(true);
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    void init() {
       text=new JTextArea(10,10);
       text.setFont(new Font("楷体_gb2312",Font.PLAIN,28));
       add(new JScrollPane(text),BorderLayout.CENTER);
       menubar=new JMenuBar();
       menu=new JMenu("文件"); 
       itemSave=new JMenuItem("保存文件"); 
       itemOpen=new JMenuItem("打开文件"); 
       itemSave.addActionListener(this); 
       itemOpen.addActionListener(this);
       menu.add(itemSave); 
       menu.add(itemOpen); 
       menubar.add(menu);
       setJMenuBar(menubar);
       fileDialog=new JFileChooser();
       FileNameExtensionFilter filter = new FileNameExtensionFilter("java文件","java");
       fileDialog.setFileFilter(filter);
  
    }
    public void actionPerformed(ActionEvent e) {
        if(e.getSource()==itemSave) {
           int state=fileDialog.showSaveDialog(this);
           if(state==JFileChooser.APPROVE_OPTION) {
             try{ 
                 File dir=fileDialog.getCurrentDirectory();
                 String name=fileDialog.getSelectedFile().getName();
                 File file=new File(dir,name);
                 fileWriter=new FileWriter(file);
                 out=new BufferedWriter(fileWriter); 
                 out.write(text.getText());
                 out.close();
                 fileWriter.close();
              }
              catch(IOException exp){}
           }      
       }
       else if(e.getSource()==itemOpen) {
            int state=fileDialog.showOpenDialog(this);
            if(state==JFileChooser.APPROVE_OPTION) {
                 text.setText(null);
                 try{    
                     File dir=fileDialog.getCurrentDirectory();
                     String name=fileDialog.getSelectedFile().getName();
                     File file=new File(dir,name);
                     fileReader=new FileReader(file);
                     in=new BufferedReader(fileReader); 
                     String s=null;
                     while((s=in.readLine())!=null) {
                         text.append(s+"\n");
                     }
                     in.close();
                     fileReader.close();
                 }
                 catch(IOException exp){}
             }      
        }
    }
}
